import request from '@/utils/request';
import qs from 'qs';
import type { PageResult, ResponseData } from '../typing';
// 参数接口// 参数接口
export interface GetMedicalCaregiverOrderPageParams {
    /*当前第几页(默认1) */
    current?: number;
    /*每页条数(默认20) */
    size?: number;
    /*项目CODE */
    projectCode?: Record<string, unknown>[];
    /*工单编号 */
    orderNum?: string;
    /*患者姓名 */
    patientName?: string;
    /*患者电话 */
    patientPhone?: string;
    /*科室ID */
    departmentId?: Record<string, unknown>[];
    /*工单来源，0用户下单、1员工下单 */
    orderSource?: string;
    /*服务ID */
    serviceId?: Record<string, unknown>[];
    /*服务类型ID */
    serviceTypeId?: Record<string, unknown>[];
    /*陪护人员ID */
    carerId?: Record<string, unknown>[];
    /*工单状态，0取消、1待付款、2待确认、3服务中、4已完成、5待审核、6已审核 */
    orderState?: Record<string, unknown>[];
    /*预约开始时间 */
    appointedStartTime?: Record<string, unknown>;
    /*预约结束时间 */
    appointedEndTime?: Record<string, unknown>;
    /*实际开始时间 */
    actualStartTime?: Record<string, unknown>;
    /*实际结束时间 */
    actualEndTime?: Record<string, unknown>;
    /* */
    page?: {
        /* */
        records?: {
            /* */
            createTime?: string;
            /* */
            updateTime?: string;
            /* */
            creator?: Record<string, unknown>;
            /* */
            updater?: Record<string, unknown>;
            /*主键 */
            id?: Record<string, unknown>;
            /*工单编号 */
            orderNum?: string;
            /*项目CODE */
            projectCode?: string;
            /*项目名 */
            projectName?: string;
            /*楼栋ID */
            buildingId?: Record<string, unknown>;
            /*楼栋名称 */
            buildingName?: string;
            /*楼层ID */
            floorId?: Record<string, unknown>;
            /*楼层名称 */
            floorName?: string;
            /*科室ID */
            departmentId?: Record<string, unknown>;
            /*科室名 */
            departmentName?: string;
            /*床位号 */
            bedNum?: string;
            /*患者姓名 */
            patientName?: string;
            /*患者电话 */
            patientPhone?: string;
            /*患者性别 */
            patientSex?: string;
            /*既往病史 */
            patientMedicalHistory?: string;
            /*患者联系地址（其他医院时的联系地址） */
            patientAddress?: string;
            /*服务ID */
            serviceId?: Record<string, unknown>;
            /*服务名字 */
            serviceName?: string;
            /*服务类型ID */
            serviceTypeId?: Record<string, unknown>;
            /*服务类型名字 */
            serviceTypeName?: string;
            /*服务单价 */
            serviceTypePrice?: number;
            /*预约开始时间 */
            appointedStartTime?: string;
            /*预约结束时间 */
            appointedEndTime?: string;
            /*预约天数 */
            appointedDay?: number;
            /*实际开始时间 */
            actualStartTime?: string;
            /*实际结束时间 */
            actualEndTime?: string;
            /*实际天数 */
            actualDay?: number;
            /*正常价 */
            priceNormal?: number;
            /*工单状态，0取消、1待付款、2待确认、3服务中、4已完成、5待审核、6已审核 */
            orderState?: Record<string, unknown>;
            /*洽谈价（总价） */
            priceTalk?: number;
            /*洽谈价（单价） */
            priceTalkUnit?: number;
            /*支付类型，0预付、1待确认后支付、2线上支付、3现金支付 */
            paymentType?: Record<string, unknown>;
            /*退款发起端，0用户发起、1员工发起 */
            approvalState?: Record<string, unknown>;
            /*是否发生退款，0否1是 */
            refundOccurs?: Record<string, unknown>;
            /*退款金额 */
            refundPrice?: number;
            /*退款原因 */
            refundReason?: string;
            /*是否结算，0否1是 */
            settlement?: Record<string, unknown>;
            /*结算金额 */
            settlementPrice?: number;
            /*结算时间 */
            settlementTime?: string;
            /*工单来源，0用户下单、1员工下单 */
            orderSource?: string;
            /*是否评分，0否1是 */
            giveScore?: Record<string, unknown>;
            /*评分 */
            score?: number;
            /*评分时间 */
            scoreTime?: string;
            /*提交审核日期 */
            flowStartTime?: string;
            /*审核完成日期 */
            flowEndTime?: string;
            /*发票是否上传，0否1是2过期 */
            invoiceUpload?: Record<string, unknown>;
            /*发票号 */
            invoiceNo?: string;
            /*发票地址 */
            invoiceUrl?: string;
            /*备用字段 */
            remark?: string;
            /*创建人 */
            creatorName?: string;
            /*是否居家，0否1是 */
            home?: Record<string, unknown>;
        }[];
        /* */
        total?: Record<string, unknown>;
        /* */
        size?: Record<string, unknown>;
        /* */
        current?: Record<string, unknown>;
        /* */
        orders?: {
            /* */
            column?: string;
            /* */
            asc?: boolean;
        }[];
        /* */
        optimizeCountSql?: boolean;
        /* */
        searchCount?: boolean;
        /* */
        optimizeJoinOfCountSql?: boolean;
        /* */
        maxLimit?: Record<string, unknown>;
        /* */
        countId?: string;
        /* */
        pages?: Record<string, unknown>;
    };
}
// 响应接口
export interface GetMedicalCaregiverOrderPageRes {
    /* */
    code: number;
    /* */
    data: {
        /* */
        size: number;
        /* */
        total: number;
        /* */
        current: number;
        /* */
        records: {
            /*主键 */
            id: number;
            /*工单编号 */
            orderNum: string;
            /*项目CODE */
            projectCode: string;
            /*项目名 */
            projectName: string;
            /*楼层名称 */
            floorName: string;
            /*楼栋名称 */
            buildingName: string;
            /*床位号 */
            bedNum: string;
            /*科室名 */
            departmentName: string;
            /*患者姓名 */
            patientName: string;
            /*患者电话 */
            patientPhone: string;
            /*服务名字 */
            serviceName: string;
            /*服务类型名字 */
            serviceTypeName: string;
            /*预约开始时间 */
            appointedStartTime: Record<string, unknown>;
            /*预约结束时间 */
            appointedEndTime: Record<string, unknown>;
            /*预约天数 */
            appointedDay: Record<string, unknown>;
            /*实际开始时间 */
            actualStartTime: Record<string, unknown>;
            /*实际结束时间 */
            actualEndTime: Record<string, unknown>;
            /*实际天数 */
            actualDay: Record<string, unknown>;
            /*护理人 */
            carer: string;
            /*费用 */
            priceNormal: number;
            /*工单状态，0取消、1待付款、2待确认、3服务中、4已完成 */
            orderState: number;
            /*退款金额 */
            refundPrice: number;
            /*实际金额 */
            actualPrice: number;
            /*评分 */
            score: Record<string, unknown>;
            /*创建时间 */
            createTime: Record<string, unknown>;
        }[];
        /* */
        pages: number;
    };
    /* */
    msg: string;
}
/**
 * 医疗-陪护-工单分页
 * @param {object} params 管理后台 - 医疗-陪护-工单分页 Request VO
 * @param {number} params.current 当前第几页(默认1)
 * @param {number} params.size 每页条数(默认20)
 * @param {array} params.projectCode 项目CODE
 * @param {string} params.orderNum 工单编号
 * @param {string} params.patientName 患者姓名
 * @param {string} params.patientPhone 患者电话
 * @param {array} params.departmentId 科室ID
 * @param {string} params.orderSource 工单来源，0用户下单、1员工下单
 * @param {array} params.serviceId 服务ID
 * @param {array} params.serviceTypeId 服务类型ID
 * @param {array} params.carerId 陪护人员ID
 * @param {array} params.orderState 工单状态，0取消、1待付款、2待确认、3服务中、4已完成、5待审核、6已审核
 * @param {object} params.appointedStartTime 预约开始时间
 * @param {object} params.appointedEndTime 预约结束时间
 * @param {object} params.actualStartTime 实际开始时间
 * @param {object} params.actualEndTime 实际结束时间
 * @param {object} params.page
 * @returns
 */
export function getMedicalCaregiverOrderPage(params: GetMedicalCaregiverOrderPageParams): Promise<GetMedicalCaregiverOrderPageRes> {
    return request.post(`/yfwy/medical-caregiver-order/page`, params);
}
// 响应接口
export interface GetMedicalCaregiverOrderRes {
    code: number;
    data: {
        createTime: Record<string, unknown>;
        updateTime: Record<string, unknown>;
        creator: number;
        updater: number;
        /*主键 */
        id: number;
        /*工单编号 */
        orderNum: string;
        /*项目CODE */
        projectCode: string;
        /*工单状态，0取消、1待付款、2待确认、3服务中、4已完成、5待审核、6已审核 */
        orderState: number;
        /*正常价 */
        priceNormal: number;
        /*洽谈价 */
        priceTalk: number;
        /*退款金额 */
        refundPrice: number;
        /*结算金额 */
        settlementPrice: number;
        /*患者姓名 */
        patientName: string;
        /*患者电话 */
        patientPhone: string;
        /*科室名 */
        departmentName: string;
        /*服务名字 */
        serviceName: string;
        /*服务类型名字 */
        serviceTypeName: string;
        /*预约开始时间 */
        appointedStartTime: Record<string, unknown>;
        /*预约结束时间 */
        appointedEndTime: Record<string, unknown>;
        /*预约天数 */
        appointedDay: number;
        /*发票是否上传，0否1是2过期 */
        invoiceUpload: number;
        /*发票号 */
        invoiceNo: string;
        /*发票地址 */
        invoiceUrl: string;
        /*实际开始时间 */
        actualStartTime: Record<string, unknown>;
        /*实际结束时间 */
        actualEndTime: Record<string, unknown>;
        /*实际天数 */
        actualDay: number;
        /*护理人信息 */
        carerList: {
            /*主键 */
            id: number;
            /*工单ID */
            orderId: number;
            /*护理人ID */
            carerId: number;
            /*护理人姓名 */
            carerName: string;
            /*护理人电话 */
            carerPhone: string;
            /*状态，0护理中，1调整 */
            status: number;
            /*服务开始时间 */
            serviceStartTime: Record<string, unknown>;
            /*服务结束时间 */
            serviceEndTime: Record<string, unknown>;
        }[];
        /*评价分数 */
        evaluteList: {
            /*评价维度名字 */
            dimensionName: string;
            /*分数 */
            score: number;
        }[];
    };
    msg: string;
}
/**
 * 获得医疗-陪护-工单
 * @param {string} id
 * @returns
 */
export function getMedicalCaregiverOrder(id: number): Promise<GetMedicalCaregiverOrderRes> {
    return request.get(`/yfwy/medical-caregiver-order/get/${id}`);
}
// 响应接口
export interface ExportMedicalCaregiverOrderExcelRes {}
/**
 * 导出医疗-陪护-工单 Excel
 * @param {string} exportReqVO 管理后台 - 医疗-陪护-工单分页 Request VO
 * @returns
 */
export function exportMedicalCaregiverOrderExcel(params: any): Promise<Blob> {
    return request.post(`/yfwy/medical-caregiver-order/export-excel`, params, {
        responseType: 'blob',
    });
}
// 参数接口
export interface ExportMedicalCaregiverOrderExcelInvoiceParams {
    /*当前第几页(默认1) */
    current?: number;
    /*每页条数(默认20) */
    size?: number;
    /*项目CODE */
    projectCode?: Record<string, unknown>[];
    /*工单编号 */
    orderNum?: string;
    /*患者姓名 */
    patientName?: string;
    /*患者电话 */
    patientPhone?: string;
    /*科室ID */
    departmentId?: Record<string, unknown>[];
    /*工单来源，0用户下单、1员工下单 */
    orderSource?: string;
    /*服务ID */
    serviceId?: Record<string, unknown>[];
    /*服务类型ID */
    serviceTypeId?: Record<string, unknown>[];
    /*陪护人员ID */
    carerId?: Record<string, unknown>[];
    /*工单状态，0取消、1待付款、2待确认、3服务中、4已完成、5待审核、6已审核 */
    orderState?: Record<string, unknown>[];
    /*预约开始时间 */
    appointedStartTime?: Record<string, unknown>;
    /*预约结束时间 */
    appointedEndTime?: Record<string, unknown>;
    /*实际开始时间 */
    actualStartTime?: Record<string, unknown>;
    /*实际结束时间 */
    actualEndTime?: Record<string, unknown>;
    /* */
    page?: {
        /* */
        records?: {
            /* */
            createTime?: string;
            /* */
            updateTime?: string;
            /* */
            creator?: Record<string, unknown>;
            /* */
            updater?: Record<string, unknown>;
            /*主键 */
            id?: Record<string, unknown>;
            /*工单编号 */
            orderNum?: string;
            /*项目CODE */
            projectCode?: string;
            /*项目名 */
            projectName?: string;
            /*楼栋ID */
            buildingId?: Record<string, unknown>;
            /*楼栋名称 */
            buildingName?: string;
            /*楼层ID */
            floorId?: Record<string, unknown>;
            /*楼层名称 */
            floorName?: string;
            /*科室ID */
            departmentId?: Record<string, unknown>;
            /*科室名 */
            departmentName?: string;
            /*床位号 */
            bedNum?: string;
            /*患者姓名 */
            patientName?: string;
            /*患者电话 */
            patientPhone?: string;
            /*患者性别 */
            patientSex?: string;
            /*既往病史 */
            patientMedicalHistory?: string;
            /*患者联系地址（其他医院时的联系地址） */
            patientAddress?: string;
            /*服务ID */
            serviceId?: Record<string, unknown>;
            /*服务名字 */
            serviceName?: string;
            /*服务类型ID */
            serviceTypeId?: Record<string, unknown>;
            /*服务类型名字 */
            serviceTypeName?: string;
            /*服务单价 */
            serviceTypePrice?: number;
            /*预约开始时间 */
            appointedStartTime?: string;
            /*预约结束时间 */
            appointedEndTime?: string;
            /*预约天数 */
            appointedDay?: number;
            /*实际开始时间 */
            actualStartTime?: string;
            /*实际结束时间 */
            actualEndTime?: string;
            /*实际天数 */
            actualDay?: number;
            /*正常价 */
            priceNormal?: number;
            /*工单状态，0取消、1待付款、2待确认、3服务中、4已完成、5待审核、6已审核 */
            orderState?: Record<string, unknown>;
            /*洽谈价（总价） */
            priceTalk?: number;
            /*洽谈价（单价） */
            priceTalkUnit?: number;
            /*支付类型，0预付、1待确认后支付、2线上支付、3现金支付 */
            paymentType?: Record<string, unknown>;
            /*退款发起端，0用户发起、1员工发起 */
            approvalState?: Record<string, unknown>;
            /*是否发生退款，0否1是 */
            refundOccurs?: Record<string, unknown>;
            /*退款金额 */
            refundPrice?: number;
            /*退款原因 */
            refundReason?: string;
            /*是否结算，0否1是 */
            settlement?: Record<string, unknown>;
            /*结算金额 */
            settlementPrice?: number;
            /*结算时间 */
            settlementTime?: string;
            /*工单来源，0用户下单、1员工下单 */
            orderSource?: string;
            /*是否评分，0否1是 */
            giveScore?: Record<string, unknown>;
            /*评分 */
            score?: number;
            /*评分时间 */
            scoreTime?: string;
            /*提交审核日期 */
            flowStartTime?: string;
            /*审核完成日期 */
            flowEndTime?: string;
            /*发票是否上传，0否1是2过期 */
            invoiceUpload?: Record<string, unknown>;
            /*发票号 */
            invoiceNo?: string;
            /*发票地址 */
            invoiceUrl?: string;
            /*备用字段 */
            remark?: string;
            /*创建人 */
            creatorName?: string;
            /*是否居家，0否1是 */
            home?: Record<string, unknown>;
        }[];
        /* */
        total?: Record<string, unknown>;
        /* */
        size?: Record<string, unknown>;
        /* */
        current?: Record<string, unknown>;
        /* */
        orders?: {
            /* */
            column?: string;
            /* */
            asc?: boolean;
        }[];
        /* */
        optimizeCountSql?: boolean;
        /* */
        searchCount?: boolean;
        /* */
        optimizeJoinOfCountSql?: boolean;
        /* */
        maxLimit?: Record<string, unknown>;
        /* */
        countId?: string;
        /* */
        pages?: Record<string, unknown>;
    };
}
// 响应接口
export interface ExportMedicalCaregiverOrderExcelInvoiceRes {}
/**
 * 导出医疗-陪护-发票工单 Excel
 * @param {object} params 管理后台 - 医疗-陪护-工单分页 Request VO
 * @param {number} params.current 当前第几页(默认1)
 * @param {number} params.size 每页条数(默认20)
 * @param {array} params.projectCode 项目CODE
 * @param {string} params.orderNum 工单编号
 * @param {string} params.patientName 患者姓名
 * @param {string} params.patientPhone 患者电话
 * @param {array} params.departmentId 科室ID
 * @param {string} params.orderSource 工单来源，0用户下单、1员工下单
 * @param {array} params.serviceId 服务ID
 * @param {array} params.serviceTypeId 服务类型ID
 * @param {array} params.carerId 陪护人员ID
 * @param {array} params.orderState 工单状态，0取消、1待付款、2待确认、3服务中、4已完成、5待审核、6已审核
 * @param {object} params.appointedStartTime 预约开始时间
 * @param {object} params.appointedEndTime 预约结束时间
 * @param {object} params.actualStartTime 实际开始时间
 * @param {object} params.actualEndTime 实际结束时间
 * @param {object} params.page
 * @returns
 */
export function exportMedicalCaregiverOrderExcelInvoice(params: ExportMedicalCaregiverOrderExcelInvoiceParams): Promise<Blob> {
    return request.post(`/yfwy/medical-caregiver-order/export-excel-invoice`, params, {
        responseType: 'blob',
    });
}
